package com.ffcs.crmd.tsp.admin.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.ffcs.crmd.tsp.api.dto.enu.JobDetailState;

/**
 * 
 * 功能说明:子任务实体类
 *
 * @author ZHONGFUHUA
 * 
 * @Date 2016年4月26日 下午5:32:45
 *
 *
 * 版本号  |   作者   |  修改时间   |   修改内容
 *
 */
public class JobDetail extends BaseEntity {
    
    /**
     * 主键
     */
    private Long                 id;
    
    /**
     * 父任务
     */
    private Long                 jobId;
    
    /**
     * 
     */
    private long                 runtimes;
    
    /**
     * 
     */
    private Short                running;
    
    /**
     * 任务名
     */
    private String               name;
    
    /**
     * 任务名称
     */
    private String               jobName;
    
    /**
     * 集群
     */
    private String               clusterName;
    
    /**
     * 任务描述
     */
    private String               description;
    
    /**
     * 是否在跑
     */
    private JobDetailState       jobDetailState = JobDetailState.NORMAL;
    
    /**
     * 开始执行时间
     */
    private Date                 startTime;
    
    /**
     * 结束执行时间
     */
    private Date                 endTime;
    
    /**
     * 上次执行时间
     */
    private Date                 prevTime;
    
    /**
     * 下次执行时间
     */
    private Date                 nextTime;
    
    /**
     * 触发时间
     */
    private Date                 fireTime;
    
    /**
     * 任务参数
     */
    private List<JobDetailParam> params         = new ArrayList<JobDetailParam>();
    
    /**
     * 功能说明: 获取主键
     *
     * @return id 主键
     */
    public Long getId() {
        return id;
    }
    
    /**
     * 功能说明: 设置主键
     *
     * @param id 主键 
     */
    public void setId(Long id) {
        this.id = id;
    }
    
    /**
     * 功能说明: 获取父任务
     *
     * @return jobId 父任务
     */
    public Long getJobId() {
        return jobId;
    }
    
    /**
     * 功能说明: 设置父任务
     *
     * @param jobId 父任务 
     */
    public void setJobId(Long jobId) {
        this.jobId = jobId;
    }
    
    /**
     * 功能说明: 获取任务名
     *
     * @return name 任务名
     */
    public String getName() {
        return name;
    }
    
    /**
     * 功能说明: 设置任务名
     *
     * @param name 任务名 
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /**
     * 功能说明: 获取任务名称
     *
     * @return jobName 任务名称
     */
    public String getJobName() {
        return jobName;
    }
    
    /**
     * 功能说明: 设置任务名称
     *
     * @param jobName 任务名称 
     */
    public void setJobName(String jobName) {
        this.jobName = jobName;
    }
    
    /**
     * 功能说明: 获取集群
     *
     * @return clusterName 集群
     */
    public String getClusterName() {
        return clusterName;
    }
    
    /**
     * 功能说明: 设置集群
     *
     * @param clusterName 集群 
     */
    public void setClusterName(String clusterName) {
        this.clusterName = clusterName;
    }
    
    /**
     * 功能说明: 获取任务描述
     *
     * @return description 任务描述
     */
    public String getDescription() {
        return description;
    }
    
    /**
     * 功能说明: 设置任务描述
     *
     * @param description 任务描述 
     */
    public void setDescription(String description) {
        this.description = description;
    }
    
    /**
     * 功能说明: 获取是否在跑
     *
     * @return jobDetailState 是否在跑
     */
    public JobDetailState getJobDetailState() {
        return jobDetailState;
    }
    
    /**
     * 功能说明: 设置是否在跑
     *
     * @param jobDetailState 是否在跑 
     */
    public void setJobDetailState(JobDetailState jobDetailState) {
        this.jobDetailState = jobDetailState;
    }
    
    /**
     * 功能说明: 获取开始执行时间
     *
     * @return startTime 开始执行时间
     */
    public Date getStartTime() {
        return startTime;
    }
    
    /**
     * 功能说明: 设置开始执行时间
     *
     * @param startTime 开始执行时间 
     */
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    
    /**
     * 功能说明: 获取结束执行时间
     *
     * @return endTime 结束执行时间
     */
    public Date getEndTime() {
        return endTime;
    }
    
    /**
     * 功能说明: 设置结束执行时间
     *
     * @param endTime 结束执行时间 
     */
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    
    /**
     * 功能说明: 获取上次执行时间
     *
     * @return prevTime 上次执行时间
     */
    public Date getPrevTime() {
        return prevTime;
    }
    
    /**
     * 功能说明: 设置上次执行时间
     *
     * @param prevTime 上次执行时间 
     */
    public void setPrevTime(Date prevTime) {
        this.prevTime = prevTime;
    }
    
    /**
     * 功能说明: 获取下次执行时间
     *
     * @return nextTime 下次执行时间
     */
    public Date getNextTime() {
        return nextTime;
    }
    
    /**
     * 功能说明: 设置下次执行时间
     *
     * @param nextTime 下次执行时间 
     */
    public void setNextTime(Date nextTime) {
        this.nextTime = nextTime;
    }
    
    /**
     * 功能说明: 获取触发时间
     *
     * @return fireTime 触发时间
     */
    public Date getFireTime() {
        return fireTime;
    }
    
    /**
     * 功能说明: 设置触发时间
     *
     * @param fireTime 触发时间 
     */
    public void setFireTime(Date fireTime) {
        this.fireTime = fireTime;
    }
    
    /**
     * 功能说明: 获取任务参数
     *
     * @return params 任务参数
     */
    public List<JobDetailParam> getParams() {
        return params;
    }
    
    /**
     * 功能说明: 设置任务参数
     *
     * @param params 任务参数 
     */
    public void setParams(List<JobDetailParam> params) {
        this.params = params;
    }
    
    /**
     * 功能说明: 获取
     *
     * @return runtimes 
     */
    public long getRuntimes() {
        return runtimes;
    }
    
    /**
     * 功能说明: 设置
     *
     * @param runtimes  
     */
    public void setRuntimes(long runtimes) {
        this.runtimes = runtimes;
    }
    
    /**
     * 功能说明: 获取
     *
     * @return running 
     */
    public Short getRunning() {
        return running;
    }
    
    /**
     * 功能说明: 设置
     *
     * @param running  
     */
    public void setRunning(Short running) {
        this.running = running;
    }
    
}
